(網(wǎng)經(jīng)社訊)章耿,花名余淮,螞蟻金服高級(jí)技術(shù)專家。
2007 年畢業(yè)后一直從事服務(wù)化相關(guān)的工作,最早在國家電網(wǎng)做電子商務(wù)平臺(tái) SOA 化的工作,之后在京東負(fù)責(zé)京東的服務(wù)化框架 JSF,目前在螞蟻金服中間件服務(wù)與框架組負(fù)責(zé)應(yīng)用框架及 SOFAStack 相關(guān)的工作。
本文根據(jù)余淮在 2018
本次分享主要分為三部分:
螞蟻金服服務(wù)化架構(gòu)演進(jìn)
螞蟻金服微服務(wù)體系
螞蟻金服 SOFAStack 的開源情況
1、螞蟻金服服務(wù)化架構(gòu)演進(jìn)
在開始講架構(gòu)演進(jìn)之前,我們先來看一組數(shù)據(jù)。
這是歷年來的雙十一數(shù)據(jù)圖,柱狀是雙十一的交易額,從最初到20億到去年的1682億,今年是2135億。而這個(gè)橙色的折線則是支付寶雙十一 0 點(diǎn)的交易峰值,去年是 26.5w筆每秒,今年更高。從這兩組數(shù)據(jù)可以看出螞蟻的業(yè)務(wù)每年都是在高速增長,那技術(shù)面臨的壓力更是在不斷的增長。但是最近幾年,峰值雖然越來越大,但是大家有個(gè)體感,就是大促的購物體驗(yàn)更好了,再也不像以前系統(tǒng)會(huì)被大促搞掛,系統(tǒng)反而越來越穩(wěn)了。
而支撐這些數(shù)字的背后,是螞蟻金融科技的一些核心技術(shù),我們可以看到有三地五中心多活架構(gòu),分布式數(shù)據(jù)庫OceanBase,金融級(jí)分布式架構(gòu)SOFAStack,還有更多的一些黑科技,例如Zoloz生物識(shí)別,螞蟻區(qū)塊鏈,第五代智能風(fēng)控引擎。
相信大家都聽過一句話 “羅馬不是一天建成的”。螞蟻金服科技的技術(shù)也不是最早就設(shè)計(jì)成這樣,和所有的大公司發(fā)展一樣,目前這些技術(shù)架構(gòu)也是隨著業(yè)務(wù)發(fā)展、系統(tǒng)的壯大,一步一步演進(jìn)而來的。
下面給大家介紹下螞蟻的演進(jìn)。
這個(gè)是支付寶最早的架構(gòu)示意圖,可以看到當(dāng)時(shí)支付寶只是電商后臺(tái)的一個(gè)支付系統(tǒng),是一個(gè)單體應(yīng)用,里面簡單的分了幾個(gè)業(yè)務(wù)模塊,連的也是一個(gè)數(shù)據(jù)庫。但隨著業(yè)務(wù)規(guī)模的不斷擴(kuò)展,單系統(tǒng)架構(gòu)已經(jīng)無法滿足業(yè)務(wù)需求。
所以支付寶就對(duì)大系統(tǒng)進(jìn)行了拆分,將原來的一個(gè)單體應(yīng)用內(nèi)部的多個(gè)模塊變成了多個(gè)獨(dú)立的子系統(tǒng),這算是典型的 SOA 化的架構(gòu)。最開始系統(tǒng)之間是使用 F5 的硬件負(fù)載設(shè)備來做系統(tǒng)間的負(fù)載均衡,但由于 F5 設(shè)備存在單點(diǎn)的問題,所以后面就在中間引入一個(gè)注冊(cè)中心的組件。服務(wù)提供者去注冊(cè)中心注冊(cè)服務(wù),服務(wù)消費(fèi)者去注冊(cè)中心訂閱服務(wù)列表,服務(wù)消費(fèi)者通過軟負(fù)載方式通過RPC 框架直接調(diào)用服務(wù)提供者。這在現(xiàn)在看來是一種非常顯而易見的服務(wù)化架構(gòu),但當(dāng)時(shí) 07 年就采用這樣的架構(gòu)還是算比較超前的。 支付寶在做系統(tǒng)拆分的同時(shí),對(duì)數(shù)據(jù)庫也按子系統(tǒng)進(jìn)行了垂直拆分。數(shù)據(jù)庫的拆分就會(huì)引入分布式事務(wù)的問題,螞蟻金服中間件就提供了基于 TCC 思想的分布式事務(wù)組件 DTX。
業(yè)務(wù)還是不斷擴(kuò)展,系統(tǒng)也越來越多,當(dāng)系統(tǒng)節(jié)點(diǎn)到一定數(shù)量的時(shí)候,單個(gè)物理機(jī)房已經(jīng)無法承受。另外考慮到同城容災(zāi)的問題,支付寶就在同城再擴(kuò)建另外一個(gè)機(jī)房,通過專線部署為一個(gè)內(nèi)部網(wǎng)絡(luò),然后將應(yīng)用部署上去。同城多機(jī)房會(huì)引入一個(gè)跨機(jī)房遠(yuǎn)程訪問的問題,相比同機(jī)房調(diào)用,這個(gè)延遲損耗一定是更高的。遠(yuǎn)程訪問主要包括兩種:RPC 調(diào)用和數(shù)據(jù)庫訪問。為了解決 RPC 跨機(jī)房調(diào)用的問題,支付寶的工程師選擇的方案是在每個(gè)機(jī)房都部署注冊(cè)中心,同機(jī)房優(yōu)先調(diào)用本機(jī)房服務(wù)的方式,也就變成圖中的部署模式。但是數(shù)據(jù)庫跨機(jī)房訪問的問題,在這個(gè)階段并沒有解決。
為了解決上面的跨機(jī)房數(shù)據(jù)訪問、數(shù)據(jù)庫連接數(shù)瓶頸以及未來數(shù)據(jù)水平擴(kuò)展的問題,螞蟻的工程師們?cè)O(shè)計(jì)了一套單元化的架構(gòu),這是單元化的一個(gè)示意圖。在沒有單元化的時(shí)候,用戶請(qǐng)求進(jìn)入內(nèi)部后,所有請(qǐng)求鏈路都是隨機(jī)走的,例如圖里的 S0 到 B1 到 C2 到 D0。首先螞蟻的請(qǐng)求都是跟用戶相關(guān)的,所以我們將數(shù)據(jù)按用戶的維度進(jìn)行水平分片,例如這張示意圖我們將所有用戶分為三組。然后我們將我們的應(yīng)用也部署成三組獨(dú)立的邏輯單元,每個(gè)邏輯單元的應(yīng)用和數(shù)據(jù)都是獨(dú)立的,相當(dāng)于每個(gè)邏輯單元都處理1/3總量用戶的數(shù)據(jù)。
這個(gè)時(shí)候我們的三個(gè)不同終端的用戶,不管是在PC端或者手機(jī)端或者掃二維碼,當(dāng)請(qǐng)求進(jìn)入統(tǒng)一接入層的時(shí)候,接入層會(huì)按上面邏輯單元的分組規(guī)則,將用戶請(qǐng)求轉(zhuǎn)發(fā)到對(duì)應(yīng)的邏輯單元,例如 user0 的請(qǐng)求轉(zhuǎn)到 S0,后面的應(yīng)用之間的調(diào)用、數(shù)據(jù)都只在邏輯單元 0 內(nèi)。統(tǒng)一的 user1 只在邏輯單元 1,user2 也只到邏輯單元 2。
我們把這種邏輯單元稱之為 RegionZone。在實(shí)際的部署過程中,物理數(shù)據(jù)中心 IDC 和 邏輯單元的數(shù)量沒有完全的對(duì)等關(guān)系。例如圖中我們物理機(jī)房可以是兩地三中心,而 RegionZone 則是分為五個(gè)。
兩地三中心是國家對(duì)金融機(jī)構(gòu)的一個(gè)容災(zāi)指導(dǎo)方案,要求在同城或相近區(qū)域內(nèi) ( ≤ 200K M )建立兩個(gè)數(shù)據(jù)中心 : 一個(gè)為數(shù)據(jù)中心,負(fù)責(zé)日常生產(chǎn)運(yùn)行 ; 另一個(gè)為災(zāi)難備份中心,負(fù)責(zé)在災(zāi)難發(fā)生后的應(yīng)用系統(tǒng)運(yùn)行。同時(shí)在異地(> 200KM ) 建立異地容災(zāi)中心。
有了這套單元化的架構(gòu)做指導(dǎo)思想,螞蟻進(jìn)行大規(guī)模的改造,包括應(yīng)用改造、基礎(chǔ)框架改造、數(shù)據(jù)中心的建設(shè)。
機(jī)房建設(shè)完成后,同時(shí)螞蟻金服將自己的用戶分成了若干份,劃了幾個(gè)邏輯單元,分別部署進(jìn)了不同的物理機(jī)房,同時(shí)完成大規(guī)模的數(shù)據(jù)遷移。
從兩地三中心到容災(zāi)能力更強(qiáng)大的三地五中心,我們只需要先進(jìn)行第三個(gè)城市的機(jī)房建設(shè),然后將部分 RegionZone 部署到第三個(gè)城市,最后再完成數(shù)據(jù)遷移和引流即可。
每一個(gè) RegionZone 在異地都有備份,當(dāng)發(fā)生城市級(jí)的故障時(shí),我們通過統(tǒng)一的管控中心將新的邏輯規(guī)則推送到統(tǒng)一接入層以及異地的備 RegionZone 時(shí),就可以做到城市級(jí)的整體容災(zāi)切換。
再后面我們基于單元化的思想做了更多彈性調(diào)度等能力,這里就不展開了。
2015 年 9 月螞蟻金融云對(duì)外正式發(fā)布,在今年 9 月的云棲大會(huì),螞蟻金融云正式升級(jí)為螞蟻金融科技,并宣布技術(shù)全面對(duì)外開放,其中就包括金融級(jí)分布式架構(gòu) SOFAStack,左上角就是網(wǎng)址,感興趣的朋友可以看下:https://tech.antfin.com/sofa。
云上的 SOFAStack 繼承了螞蟻金服內(nèi)部的能力,有三大特點(diǎn),分別是開放(全棧開放、開源共建)、云原生(異地多活、無限擴(kuò)展)、金融級(jí)(資金安全、無損容災(zāi)),下面是一些核心能力大家可以看下。這一切就使得螞蟻金服的微服務(wù)體系不僅僅在螞蟻內(nèi)部玩得轉(zhuǎn),也需要適應(yīng)云上例如云原生、多租戶等更復(fù)雜的場景。
2、螞蟻微服務(wù)體系
講到微服務(wù),大家就會(huì)看到或者腦子就跳出各種各樣的詞,例如RPC框架、服務(wù)安全、路由尋址等等。
除了這些以外,其實(shí)還有更多的服務(wù)歸屬、服務(wù)測(cè)試、服務(wù)編排等更多概念。
那螞蟻內(nèi)部圍繞微服務(wù)體系,也建設(shè)了很多的組件和框架對(duì)應(yīng)這些微服務(wù)的概念點(diǎn)。
這是一張螞蟻內(nèi)部微服務(wù)體系的一張簡圖,只列了部分主要組件,這些組件都是自研的,部分已經(jīng)開源。可以看到有配置中心 DRM、注冊(cè)中心 SOFARegistry,應(yīng)用開發(fā)框架 SOFABoot,應(yīng)用里的RPC 框架、分布式鏈路跟蹤組件 Tracer、監(jiān)控度量組件 Lookout 等微服務(wù)組件,應(yīng)用旁邊是我們的SOFAMosn,也就是 ServiceMesh 里的數(shù)據(jù)平面 SideCar,會(huì)將 RPC 里的路由、限流、鑒權(quán)等一些能力集成到這個(gè)組件里,下面的OCS 是我們的可觀測(cè)性平臺(tái),可以在上面看 tracer 和 metrics 信息,兩邊的兩個(gè)組件是Edge Proxy,主要是在跨機(jī)房或者跨 BU 的遠(yuǎn)程服務(wù)訪問的 Proxy。
下面我會(huì)逐一介紹各個(gè)組件:
SOFABoot 是我們的開發(fā)框架,目前已經(jīng)開源。開源地址是:
https://github.com/alipay/sofa-boot
SOFABoot 是基于 Spring Boot 的,我們對(duì)其做了功能擴(kuò)展,同時(shí)也保持完全兼容。SOFABoot 提供了基于 Spring 上下文隔離的模塊化開發(fā)、基于 SOFAArk 的類隔離/動(dòng)態(tài)模塊、中間件和業(yè)務(wù)日志框架隔離等能力。由于 Spring Cloud 也是基于 Spring Boot 的,所以 SOFABoot 和 Spring Cloud 體系也是完全兼容的。我們將 SOFAStack 下的中間件都作為 SOFABoot Starter,同時(shí)一些會(huì)員、安全等基礎(chǔ)業(yè)務(wù)我們也作為 Starter 供各個(gè)應(yīng)用方便的集成使用。
SOFARPC 是內(nèi)部的 RPC 框架,目前也已經(jīng)開源,開源地址是:https://github.com/alipay/sofa-rpc
SOFARPC 和其它的開源的 RPC 框架一樣,做了很多分層很多的模型抽象,例如圖中的 Filter/Router/Cluster/Loadbalance/Serilization/Protocol/Transport 等這些模型。
它的特點(diǎn)如下:
透明化、高性能
豐富的擴(kuò)展機(jī)制、事件機(jī)制
支持自定義Filter和自定義Router
支持多種負(fù)載均衡策略,隨機(jī)/權(quán)重/輪詢/一致性hash 等
支持多種注冊(cè)中心,zookeeper/consul/etcd/nacos 等
支持多協(xié)議, Bolt/Rest/HTTP/H2/gRPC/dubbo 等
支持多種調(diào)用方式,同步、單向、回調(diào)、泛化等
支持集群容錯(cuò)、服務(wù)預(yù)熱、自動(dòng)故障隔離
SOFARPC 基于Java Proxy 機(jī)制實(shí)現(xiàn)透明的,默認(rèn)的基于二進(jìn)制協(xié)議 Bolt 和 NIO 異步非阻塞實(shí)現(xiàn)高性能通訊。SOFARPC 基于其 Extensier 擴(kuò)展機(jī)制和 EventBus 的事件總線機(jī)制可以進(jìn)行非常方便集成各種各樣的擴(kuò)展。例如注冊(cè)中心,我們內(nèi)置支持了 ZooKeeper 和 nacos 的實(shí)現(xiàn),社區(qū)幫我們共享了 consul 和 etcd 等實(shí)現(xiàn)。
SOFARPC 還支持多協(xié)議,Bolt 是螞蟻內(nèi)部使用多年的內(nèi)部協(xié)議,也已開源,地址是:https://github.com/alipay/sofa-bolt。
SOFARegistry 是自研的注冊(cè)中心。
SOFARegistry 和 Zookeeper、etcd 注冊(cè)中心不同的是,它是屬于 AP 架構(gòu),保證高可用和數(shù)據(jù)的最終一致。注冊(cè)中心客戶端和注冊(cè)中心之間是長連接,當(dāng)訂閱數(shù)據(jù)發(fā)生變化的時(shí)候,注冊(cè)中心是推送數(shù)據(jù)給注冊(cè)中心客戶端的。為了保持大量的長連接,我們將注冊(cè)中心分為了兩種角色,Session 節(jié)點(diǎn)和 Data 節(jié)點(diǎn),Session 節(jié)點(diǎn)保持與客戶端的長連接,Data 節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)。SOFARegistry 還原生支持多數(shù)據(jù)中心以及單元化場景。在螞蟻金融云上,SOFARegistry 新增加了 Meta 節(jié)點(diǎn)角色用于支持多租戶以及數(shù)據(jù)分片,這就使其擁有了支持海量服務(wù)注冊(cè)信息存儲(chǔ)的能力。
DRM 是我們內(nèi)部的分布式配置中心。
配置中心客戶端和配置中心服務(wù)端數(shù)據(jù)交互是采用長連接推模式,而不是 HTTP 短輪詢或者長輪詢。配置中心客戶端在本地磁盤存儲(chǔ)配置以數(shù)據(jù)防止配置中心服務(wù)端不可用,同時(shí)客戶端也會(huì)定時(shí)檢查數(shù)據(jù)一致性;在服務(wù)端Nginx、服務(wù)端內(nèi)存中設(shè)計(jì)緩存增加性能,沒有的數(shù)據(jù)才會(huì)請(qǐng)求到數(shù)據(jù)庫。配置中心的管控臺(tái)支持單點(diǎn)、灰度、分組、全局等多種推送模式,并會(huì)讀對(duì)推送結(jié)果做一致性檢查。
Guardian 是我們內(nèi)部的熔斷限流組件。
它支持監(jiān)控模式(只記錄不攔截)和攔截模式。支持多種場景的限流例如RPC請(qǐng)求、Web請(qǐng)求等。支持令牌桶、漏桶等多種限流算法。支持限時(shí)熔斷、降級(jí)等多種熔斷規(guī)則。支持空處理、固定返回值、拋出異常等降級(jí)策略。有時(shí)候如果這些規(guī)則過于復(fù)雜,用戶可以在管理端配置自定義 groovy 腳本,規(guī)則將通過配置中心下發(fā)到各個(gè)攔截點(diǎn)。Guardian 同時(shí)還支持故障注入操作,用于日常的一些應(yīng)急演練,檢測(cè)系統(tǒng)的健壯性等等。
SOFALookout 是我們內(nèi)部的監(jiān)控度量組件,目前客戶端已經(jīng)開源,地址是
https://github.com/alipay/sofa-lookout
SOFALookout 的客戶端基于 Mectrics 2.0 標(biāo)準(zhǔn),內(nèi)置多種度量規(guī)則例如 JVM/cpu/mem/load 等,用戶也可以自定義度量。Lookout-gateway 是一個(gè)度量數(shù)據(jù)收集端,可對(duì)接多種數(shù)據(jù)采集端(例如來自 Lookout 客戶端上報(bào)的、agent上報(bào)的或者來自 Queue 里的事件),同時(shí)內(nèi)置一定的計(jì)算能力,將處理后的數(shù)據(jù)丟到消息隊(duì)列中,最后分發(fā)到 OB/HBase/ES 等不同的數(shù)據(jù)存儲(chǔ)中。不同后端數(shù)據(jù)展示平臺(tái)可以直接從數(shù)據(jù)存儲(chǔ)中撈出數(shù)據(jù)進(jìn)行展示。OCS 就是我們的可觀測(cè)平臺(tái),可以查 Tracer 和 Metrics 信息。
SOFATracer 是我們內(nèi)部的分布式鏈路跟蹤組件,目前客戶端已經(jīng)開源,地址是
https://github.com/alipay/sofa-tracer
SOFATracer 基于 OpenTracing 規(guī)范,提供了豐富的組件支持,例如 Servlet/SpringMVC/HTTPClient/RPC/JDBC 等組件,同時(shí)也支持 OpenTracing 官方已經(jīng)集成的實(shí)現(xiàn)。SOFATracer 提供了底層多種存儲(chǔ)實(shí)現(xiàn),可以落地到磁盤或者直接匯報(bào)到遠(yuǎn)程服務(wù)端。同時(shí) SOFATracer 還提供了鏈路數(shù)據(jù)透傳的能力,廣泛用于全鏈路壓測(cè)等場景。
DTX 是分布式事務(wù)組件,是螞蟻重度依賴的一個(gè)組件,保障在大規(guī)模分布式環(huán)境下業(yè)務(wù)活動(dòng)的數(shù)據(jù)一致性。
DTX 支持 TCC/FMT/XA 三種模式,用的最多的還是 TCC 這種柔性事務(wù)的模式。TCC 模式簡單介紹下,它其實(shí)是一個(gè)兩階段提交的思想,將事務(wù)分成兩個(gè)階段,try階段和 cofirm/cancel 兩個(gè)階段,用戶在業(yè)務(wù)代碼中實(shí)現(xiàn)各階段要做的事情。事務(wù)開始的時(shí)候,事務(wù)發(fā)起者通知所有事務(wù)參與者執(zhí)行 try 的操作,try 的時(shí)候做預(yù)留業(yè)務(wù)資源或者數(shù)據(jù)校驗(yàn)操作,如果都 try 成功,則執(zhí)行 confirm 確認(rèn)執(zhí)行業(yè)務(wù)操作,否則執(zhí)行 cancel 取消執(zhí)行業(yè)務(wù)操作。另外也提供了 FMT 模式,它是另外一種易于用戶快速接入、無業(yè)務(wù)侵入的較自動(dòng)化的分布式事務(wù)模式。
DTX 還支持冪等控制、防懸掛等特性,事務(wù)日志兼容多種日志存儲(chǔ)實(shí)現(xiàn),事務(wù)也支持從本地異步恢復(fù)或者遠(yuǎn)程服務(wù)端恢復(fù)。
ACTS 是我們的一個(gè)測(cè)試框架。
大家知道對(duì)于開發(fā)來說,寫測(cè)試用例其實(shí)是一個(gè)比較復(fù)雜的事情,特別在開發(fā)人員水平參差不齊、業(yè)務(wù)系統(tǒng)又比較復(fù)雜的時(shí)候。ACTS 是數(shù)據(jù)對(duì)象模型驅(qū)動(dòng)測(cè)試引擎的新一代測(cè)試框架,致力于提高開發(fā)測(cè)試人員編寫測(cè)試用例的效率,給開發(fā)人員一個(gè)更好的測(cè)試體驗(yàn)。ACTS 支持了 IDEA 和 Eclipse 兩種 IDE 插件,開發(fā)人員可以在 IDE 里直接生成標(biāo)準(zhǔn)化的測(cè)試用例,然后再通過可視化的測(cè)試數(shù)據(jù)編輯,對(duì)結(jié)果可以精細(xì)化校驗(yàn),測(cè)試數(shù)據(jù)也會(huì)自動(dòng)清理。另外支持 API 重寫提高測(cè)試代碼的可拓展可復(fù)用性,提供特有注解提高測(cè)試代碼編排的靈活性。
SOFAMosn 是我們使用 Golang 語言開發(fā)的 sidecar,目前已經(jīng)開源,地址是:
https://github.com/alipay/sofa-mosn
這張圖其實(shí)是 istio 官方的一種圖,只是我們把 Envoy 換成了 SOFAMosn。SOFAMosn 可以與 istio 無縫集成,完全兼容它的 API。SOFAMosn 也支持多種協(xié)議,除了 Envoy 支持的之外,還額外支持 SOFARPC 和 Dubbo 協(xié)議,當(dāng)然您也可以非常方便的去擴(kuò)展支持自定義協(xié)議。 SOFAMosn 內(nèi)置了可觀測(cè)組件,用戶可以監(jiān)控其網(wǎng)絡(luò)、請(qǐng)求壓力等信息。SOFAMosn 還能支持平滑 reload、平滑升級(jí)。
3、SOFAStack 開源
SOFAStack 中的 SOFA 其實(shí)是 Scalable Open Financial Architecture 的首字母縮寫,它是用于快速構(gòu)建金融級(jí)分布式架構(gòu)的一套中間件,也是在金融場景里錘煉出來的最佳實(shí)踐。
目前 SOFAStack 采用的開源策略我們稱之為是「Open Core」,就是將 API 層、接口層以及核心實(shí)現(xiàn)邏輯通通開源,內(nèi)部實(shí)現(xiàn)保留的是一些兼容內(nèi)部系統(tǒng),兼容老的 API,或者是一些歷史包袱比較重的代碼。
這是今年 SOFAStack 開源的時(shí)間軸,在今年的 4 月 19 日,SOFAStack 正式宣布開源,我們第一批主要開了SOFABoot 和 SOFARPC 框架,以及 SOFABolt、SOFAArk、SOFAHessian 等周邊組件;
在 5 月 31 日我們第二批開源了 SOFATracer 和 SOFALookout 的客戶端,完善了微服務(wù)組件;在 6 月 28 日我們的開源官網(wǎng)正式上線,域名就是 http://sofastack.tech;在 7 月 16 日我們第三批開源了 ServiceMesh 領(lǐng)域的兩個(gè)項(xiàng)目 SOFAMesh 和SOFAMosn。截止到今年的雙十一,這些項(xiàng)目的總 Star 數(shù)已經(jīng)破萬,單個(gè)工程最高的是 2700 多。
這是我們內(nèi)部的 Landscape,可以看到微服務(wù)領(lǐng)域各個(gè)功能點(diǎn)我們都有對(duì)應(yīng)的內(nèi)部系統(tǒng)或者組件。部分前面已經(jīng)介紹過了,不做過多介紹。
另外這張是我們的 OpenSource Landscape,目前只開源了部分組件,部分組件還在開源準(zhǔn)備中,雖然不少內(nèi)部組件沒有開源,但是在每個(gè)微服務(wù)領(lǐng)域我們都會(huì)打通當(dāng)前已經(jīng)開源的比較成熟的組件。例如微服務(wù)里的服務(wù)發(fā)現(xiàn),我們沒有開源內(nèi)部的 SOFARegistry,但是我們對(duì)接了 ZooKeeper/etcd/nacos 等業(yè)界成熟的注冊(cè)中心產(chǎn)品,又例如分布式跟蹤,我們雖然開源了自己的 SOFATracer,但是在 SOFARPC 我們也提供 skywalking 作為我們的分布式跟蹤的實(shí)現(xiàn)。通過保持和業(yè)界眾多優(yōu)秀開源產(chǎn)品的兼容性,使得 SOFAStack 有更多可能。
目前 SOFAStack 的源碼托管在 Github 和 Gitee 上面,歡迎感興趣的朋友上去看看,也歡迎給我們 Star。
SOFAStack 下的項(xiàng)目大概有 30 來個(gè),每天的 PV 在 10000 以上,總 Star 數(shù)一萬多,到 12 月初已經(jīng)有 80 多位小伙伴給我們貢獻(xiàn)過代碼或者文章。另外我們也和其它一些國內(nèi)社區(qū)保持了良好的交流與合作,包括 ServiceMesher、Skywalking、AntDesign、Eggjs、K8S 中國社區(qū)等。
那如果大家對(duì) SOFAStack 感興趣,可以通過這些方式參與到我們的 SOFAStack 社區(qū)活動(dòng),我們也為貢獻(xiàn)者們準(zhǔn)備了定制的豐富禮物:
您可以使用我們的組件給我們反饋,或者查看改進(jìn)我們的文檔,或者為 SOFAStack 寫技術(shù)分享或者實(shí)踐類文章,我們會(huì)同步到我們微信公眾號(hào)(金融級(jí)分布式架構(gòu))里;
當(dāng)然最好可以貢獻(xiàn) PR,不管是改錯(cuò)別字、修復(fù) Bug 還是提 Feature;
也歡迎來見我們,目前我們已經(jīng)在北京上海深圳杭州舉辦過四次 ServiceMesh Meetup,下一次 1月 6 日在廣州,歡迎感興趣的同學(xué)可以參加,歷屆活動(dòng)可參考:http://www.servicemesher.com/
PPT 下載和相關(guān)地址
PPT 地址:
http://www.sofastack.tech/posts/2018-12-17-01
SOFA 文檔: http://www.sofastack.tech/
SOFA 開源整體地址: https://github.com/alipay
開源中國地址:
https://www.oschina.net/p/sofaboot